﻿using System;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using Metodesa.Tools;
using METODESA.Server.Data.METODESA.Entity;
using METODESA.Server.Data.METODESA.Nhibernate;

namespace Metodesa.Views.Home
{
    public partial class DetailsProveedor : System.Web.UI.Page
    {
        public int ids;
        public Proveedor proveedor;
        public int[] items; // Variable donde guardo
        public HtmlTable table;
        protected void Page_Load(object sender, EventArgs e)
        {

            if (Session["User"] != null)
            {
                Empleado usuario = (Empleado)Session["User"];
            }
            else
            {
                Response.Redirect("../../Views/Home/Index.aspx", true);
            }

           

            if (Id.Value == null || Id.Value=="")
            {
                ids = int.Parse(Request.QueryString.Get("id"));
                Id.Value = ids.ToString();
            }
            else
                ids = int.Parse(Id.Value);
            proveedor = ProveedorDao.getProveedorById(ids);
            if (proveedor == null)
                Response.Redirect("../../Views/Home/ListProveedor.aspx", true);
            else
            {
                String action = Request.QueryString.Get("a");
                if (action != null)
                {
                    if (action.Equals("d"))
                    {
                        int id;
                        string aux = Request.QueryString.Get("pro");
                        int.TryParse(aux, out id);
                        Producto producto=ProductoDao.getProductoById(id);
                        if(producto!=null)
                        proveedor.producto.Remove(producto);

                        ProveedorDao.saveEntity(proveedor);

                    }
                }

                labelName.Text = proveedor.Nombre;
                labelCi.Text = proveedor.CedulaRif;
                LabelAddress.Text = proveedor.Direccion;
                 table = ProductosTools.ListProductoProveedor(proveedor.producto,proveedor.Id);
                if(table!=null)
                ListProductos.Controls.Add(table);
                items = ListBoxProductos.GetSelectedIndices(); // Guardo los indices seleccionados
                 ListBoxProductos= ProductosTools.addProductoProveedor(proveedor.producto, ListBoxProductos); // creo de nuevo mi listBox
              
            }
            


        }

        protected void ButtonAddProduto_Click(object sender, EventArgs e)
        {
            
            foreach (int i in items) // Para todos los indices i en la variable que guarde antes
            {
                int a = int.Parse(ListBoxProductos.Items[i].Value);    // Busco el id del producto que  estaba en el indice que guarde
                Producto producto = ProductoDao.getProductoById(a);  // Busco el producto con el id 
                proveedor.producto.Add(producto); //  Agrego el producto a la coleccion de Productos de mi proveedor
                ListItem listItem=ListBoxProductos.Items.FindByValue(producto.Id.ToString());  // Busco el producto q ya agrege
                ListBoxProductos.Items.Remove(listItem);  // Lo quito de la lista
                table = ProductosTools.concatProductoProveedor(producto,table,proveedor.Id); // concateno a la tabla de productos del proveedor el producto q agrege
                ListProductos.Controls.Clear();  // Como solo tengo la tabla en el panel borro todo el panel
                ListProductos.Controls.Add(table); // y agrego la tabla con la ultima fila concatenada

            }
            ProveedorDao.saveEntity(proveedor);
            

            
        }
    }
}
